//
//  GDMHomeStatusModel.swift
//  SinaWeibo
//
//  Created by mac on 15/11/30.
//  Copyright © 2015年 mac. All rights reserved.
//

import UIKit

class GDMHomeStatusModel: NSObject {

//    微博创建时间
    var created_at : String?
    
//    微博ID
//    在32位的机器上的时候要改成一个longlong类型
    var id : Int = 0
    
//    微博信息内容
    var text : String?
    
//    微博来源
    var source : String?
    
//    获取用户的属性
    var user : GDMUserModel?
    
//被转发的微博的字段,被转发的微博的也是一个微博，就是转发的微博有可能没有图片，
    var retweeted_status: GDMHomeStatusModel?
    
//    配图数组
    var pic_urls : [[String : String]]? {
        
        didSet {
            
            guard let urls = pic_urls else {
                
                return
            }
            
//            实例化这个URL
            imageUrl = [NSURL]()
            
//            遍历数组
            for item in urls {
                
//                根据建获取对应的URL
                let urlString = item["thumbnail_pic"]
                
//                把字符串转成一个url
                let url = NSURL(string: urlString!)!
                
                imageUrl?.append(url)
            }
        }
        
    }
    
    var imageUrl : [NSURL]?
    
//    定义统一的图片数组
    var pictureUrl : [NSURL]? {
        
//       是转发的时候
        if retweeted_status != nil {
            
            return retweeted_status?.imageUrl
            
        }
        
        return imageUrl
    }
    
//    进行字典转模型
    init(dict : [String : AnyObject]){
        
        super.init()
        
        setValuesForKeysWithDictionary(dict)
    }
    
//    根据取出来的内容，在把用户的信息拿出来
    override func setValue(value: AnyObject?, forKey key: String) {
        
//        同样进行一个判断,
        if key == "user" {
            
//            在进行判断是不是一个字典数组
            if let dict  = value as? [String : AnyObject] {
                
//                进行字典转模型
                user = GDMUserModel(dict : dict)
            }
            
            return
        }
        
        if key == "retweeted_status" {
            
            //            在进行判断是不是一个字典数组
            if let dict  = value as? [String : AnyObject] {
                
                //                进行字典转模型
                retweeted_status = GDMHomeStatusModel(dict : dict)
            }
            
            return
        }
        
        super.setValue(value, forKey: key)
    }
    
//    过滤我不需要的内容
    override func setValue(value: AnyObject?, forUndefinedKey key: String) { }
    
//    重写描述的那个方法，打印的时候显示正确的内容
    //重写description 属性
//    override var description: String {
//        let keys = ["created_at","id","text","source"]
//        return dictionaryWithValuesForKeys(keys).description
//    }
    
}
